You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Follows #726 on the ja branch. Thanks @moritz-gross for the # audit-ignore pointer on #720 — this PR is the first one that needs it, and I have measured what it does (numbers at the end).
Why this rule cannot be translated slot by slot
ClearSpeak-intervals reads (c,d) as "the interval from c to d, not including c or d". Copying that shape into Japanese changes the meaning: English negation distributes over the disjunction, but Japanese または does not, so 「c または d を含まない」 asserts not(c) or not(d) rather than neither. The connectives and/or/but also cannot be chosen independently of polarity in Japanese.
So each endpoint now carries its own verb, joined by the continuative form:
now reads
(c,d)
区間 c から d まで, c を含まず d を含まない
[c,d]
区間 c から d まで, c を含み d を含む
[c,d)
区間 c から d まで, c を含み d を含まない
(c,d]
区間 c から d まで, c を含まず d を含む
When one side is infinite there is only one clause, so the first verb switches to its terminal form (を含む / を含まない) instead of the continuative.
The range itself also had to move: から and まで are postpositions, so the endpoints come first, the same change as #726.
Machine-translation fixes in the same rule
コメントはありません — this was the bare word "not" from then: [t: "not"], rendered as "there are no comments". It was spoken in every open interval.
含まれるもの ("things that are included") for "including".
間隔から for "the interval from". 間隔 is spacing or an interval of time, not a mathematical interval; that is 区間.
audit-translations
Measured on this branch against a detached checkout of ja at 544e7fb:
Rule differences
Untranslated
ja baseline
28
3683
this branch, no marker
31
3683
this branch, with # audit-ignore
28
3674
So the marker cancels exactly the three intended differences.
One observation while using it, in case it is useful: # audit-ignore suppresses untranslated-text findings as well as rule differences (auditor.py lines 138 and 147), so marking this rule also hid its nine t: entries from the untranslated count. For a rule that diverges structurally but still needs its wording tracked, there is no way to silence only the structural half. I do not know whether that is worth a separate marker — happy to open an issue on the tool if you would like one.
I put the marker after name: rather than in the comment block above the rule, because build_raw_blocks splits on the item's first value line, so a leading - # comment can land in the previous rule's block.
Deliberately not in this PR
The non-ClearSpeak intervals rule in SharedRules/general.yaml has the same から … に shape, and additionally speaks translate(name(.),'-',' '), which reads the English tag name aloud in a Japanese voice. Fixing it needs interval terminology, and the obvious choice is not safe: [a,b) is called 右半開区間 by sources that name the open side and 左閉半開区間 by sources that name the closed side, so the same word can mean opposite things. The Japanese Wikipedia article uses the unambiguous two-sided forms 左閉右開 / 左開右閉 instead, which also map directly onto the tag names. I will send that separately.
One observation while using it, in case it is useful: # audit-ignore suppresses untranslated-text findings as well as rule differences (auditor.py lines 138 and 147), so marking this rule also hid its nine t: entries from the untranslated count. For a rule that diverges structurally but still needs its wording tracked, there is no way to silence only the structural half. I do not know whether that is worth a separate marker — happy to open an issue on the tool if you would like one.
ok I will keep this in mind and if it comes up again, it might be worth thinking about this more. For the start, we didn't want to overcomplicate this tool, so we left out some functionality.
I put the marker after name: rather than in the comment block above the rule, because build_raw_blocks splits on the item's first value line, so a leading - # comment can land in the previous rule's block.
good catch, I think that's a bug of build_raw_blocks. I'll open an issue for it.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follows #726 on the
jabranch. Thanks @moritz-gross for the# audit-ignorepointer on #720 — this PR is the first one that needs it, and I have measured what it does (numbers at the end).Why this rule cannot be translated slot by slot
ClearSpeak-intervalsreads(c,d)as "the interval from c to d, not including c or d". Copying that shape into Japanese changes the meaning: English negation distributes over the disjunction, but Japanese または does not, so 「c または d を含まない」 asserts not(c) or not(d) rather than neither. The connectives and/or/but also cannot be chosen independently of polarity in Japanese.So each endpoint now carries its own verb, joined by the continuative form:
(c,d)[c,d][c,d)(c,d]When one side is infinite there is only one clause, so the first verb switches to its terminal form (を含む / を含まない) instead of the continuative.
The range itself also had to move: から and まで are postpositions, so the endpoints come first, the same change as #726.
Machine-translation fixes in the same rule
コメントはありません— this was the bare word "not" fromthen: [t: "not"], rendered as "there are no comments". It was spoken in every open interval.含まれるもの("things that are included") for "including".間隔からfor "the interval from". 間隔 is spacing or an interval of time, not a mathematical interval; that is 区間.audit-translations
Measured on this branch against a detached checkout of
jaat 544e7fb:jabaseline# audit-ignoreSo the marker cancels exactly the three intended differences.
One observation while using it, in case it is useful:
# audit-ignoresuppresses untranslated-text findings as well as rule differences (auditor.pylines 138 and 147), so marking this rule also hid its ninet:entries from the untranslated count. For a rule that diverges structurally but still needs its wording tracked, there is no way to silence only the structural half. I do not know whether that is worth a separate marker — happy to open an issue on the tool if you would like one.I put the marker after
name:rather than in the comment block above the rule, becausebuild_raw_blockssplits on the item's first value line, so a leading- #comment can land in the previous rule's block.Deliberately not in this PR
The non-ClearSpeak
intervalsrule inSharedRules/general.yamlhas the same から … に shape, and additionally speakstranslate(name(.),'-',' '), which reads the English tag name aloud in a Japanese voice. Fixing it needs interval terminology, and the obvious choice is not safe:[a,b)is called 右半開区間 by sources that name the open side and 左閉半開区間 by sources that name the closed side, so the same word can mean opposite things. The Japanese Wikipedia article uses the unambiguous two-sided forms 左閉右開 / 左開右閉 instead, which also map directly onto the tag names. I will send that separately.